iT邦幫忙

2023 iThome 鐵人賽

0

在多媒體影像處理中,"形狀特征" 是一種用於描述圖像中對象或物體的形狀、輪廓和結構的方法。形狀特征提供了有關對象的幾何信息,通常用於對象檢測、分類和分割等應用。

一種常用的形狀特征是Hu矩,也被稱為不變矩。Hu矩是一組具有旋轉、平移和尺度不變性的數字特征,用於描述物體的形狀。以下是Hu矩的數學表達式:

給定一個二值化的圖像 I(x, y),其中 (x, y) 是像素坐標:

  1. 計算圖像的歸一化中心矩(原始矩):

    M00 = ∑∑ I(x, y)
    M10 = ∑∑ x * I(x, y)
    M01 = ∑∑ y * I(x, y)
    

    這里的∑∑表示對所有像素進行求和。

  2. 計算中心矩的歸一化版本:

    μ20 = M20 / M00^2
    μ02 = M02 / M00^2
    μ11 = M11 / M00^2
    μ30 = M30 / M00^2.5
    μ03 = M03 / M00^2.5
    
  3. 計算Hu矩:

    Hu1 = μ20 + μ02
    Hu2 = (μ20 - μ02)^2 + 4μ11^2
    Hu3 = (μ30 - 3μ12)^2 + (3μ21 - μ03)^2
    Hu4 = (μ30 + μ12)^2 + (μ21 + μ03)^2
    Hu5 = (μ30 - 3μ12)(μ30 + μ12)[(μ30 + μ12)^2 - 3(μ21 + μ03)^2] + (3μ21 - μ03)(μ21 + μ03)[3(μ30 + μ12)^2 - (μ21 + μ03)^2]
    Hu6 = (μ20 - μ02)[(μ30 + μ12)^2 - (μ21 + μ03)^2] + 4μ11(μ30 + μ12)(μ21 + μ03)
    Hu7 = (3μ21 - μ03)(μ30 + μ12)[(μ30 + μ12)^2 - 3(μ21 + μ03)^2] - (μ30 - 3μ12)(μ21 + μ03)[3(μ30 + μ12)^2 - (μ21 + μ03)^2]
    

這些Hu矩是圖像的形狀特征,它們在旋轉、平移和尺度變換下保持不變,因此對於對象識別和形狀分析非常有用。

以下是一個使用Python的示例代碼,用於計算圖像的Hu矩:

import cv2
import numpy as np

# 讀取二值化圖像
image = cv2.imread('binary_image.jpg', cv2.IMREAD_GRAYSCALE)

# 計算Hu矩
hu_moments = cv2.moments(image)
hu_moments = cv2.HuMoments(hu_moments)

# 打印Hu矩值
print("Hu Moments:")
for i in range(7):
    print(f"Hu{i+1}: {hu_moments[i][0]}")

上述示例代碼首先讀取一個二值化的圖像,然後使用cv2.moments函數計算圖像的矩。接著,使用cv2.HuMoments函數計算了圖像的Hu矩。 Hu矩的值可以用於描述圖像的形狀特征,如圓形、橢圓形等。


上一篇
顏色特徵—紋理特徵
下一篇
傅立葉形狀描述符號
系列文
多媒體:影像處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言